home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: Alpha / Whiteline Alpha.iso / tex / tools / umrand / umrand3.tex < prev    next >
Encoding:
Text File  |  1994-09-22  |  3.8 KB  |  101 lines

  1. \originalTeX
  2.  
  3. % stolen from testfont.tex
  4.  
  5. \tracinglostchars=0
  6.  
  7. \tolerance=1000
  8.  
  9. \raggedbottom
  10.  
  11. \parindent=0pt
  12.  
  13. \newlinechar=`@
  14.  
  15. \hyphenpenalty=200
  16.  
  17. \doublehyphendemerits=30000
  18.  
  19. \newcount\m \newcount\n \newcount\p \newdimen\dim
  20.  
  21. \chardef\other=12
  22.  
  23. \def\today{\ifcase\month\or
  24.  
  25.   January\or February\or March\or April\or May\or June\or
  26.  
  27.   July\or August\or September\or October\or November\or December\fi
  28.  
  29.   \space\number\day, \number\year}
  30.  
  31. \def\hours{\n=\time \divide\n 60
  32.  
  33.   \m=-\n \multiply\m 60 \advance\m \time
  34.  
  35.   \twodigits\n\twodigits\m}
  36.  
  37. \def\twodigits#1{\ifnum #1<10 0\fi \number#1}
  38.  
  39. \def\setbaselineskip{\setbox0=\hbox{\n=0
  40.  
  41. \loop\char\n \ifnum \n<255 \advance\n 1 \repeat}
  42.  
  43. \baselineskip=6pt \advance\baselineskip\ht0 \advance\baselineskip\dp0 }
  44.  
  45. \def\setchar#1{{\escapechar-1\message{\string#1 character = }%
  46.  
  47.   \def\do##1{\catcode`##1=\other}\dospecials
  48.  
  49.   \read-1 to\next
  50.  
  51.   \expandafter\finsetchar\next\next#1}}
  52.  
  53. \def\finsetchar#1#2\next#3{\global\chardef#3=`#1
  54.  
  55.   \ifnum #3=`\# \global\chardef#3=#2 \fi}
  56.  
  57. \def\promptthree{\setchar\background
  58.  
  59.   \setchar\starting \setchar\ending}
  60.  
  61. \def\init#1{%\message{@Name of the font to test = }
  62.  
  63.  % \read-1 to\fontname
  64.  
  65.   \def\fontname{#1}
  66.  
  67.   \font\testfont=\fontname
  68.  
  69.   \leftline{\sevenrm Test of \fontname\unskip\ on \today\ at \hours}
  70.  
  71.   \medskip
  72.  
  73.   \testfont \setbaselineskip
  74.  
  75.   \ifdim\fontdimen6\testfont<10pt \rightskip=0pt plus 20.74pt
  76.  
  77.   \else\rightskip=0pt plus 2em \fi
  78.  
  79.   \spaceskip=\fontdimen2\testfont % space between words (\raggedright)
  80.  
  81.   \xspaceskip=\fontdimen2\testfont \advance\xspaceskip by\fontdimen7\testfont
  82.  
  83.   %\message{Now type a test command (\string\help\space for help):}
  84.  
  85.  }
  86.  
  87. \def\oct#1{\hbox{\rm\'{}\kern-.2em\it#1\/\kern.05em}} % octal constant
  88.  
  89. \def\hex#1{\hbox{\rm\H{}\tt#1}} % hexadecimal constant
  90.  
  91. \def\setdigs#1"#2{\gdef\h{#2}% \h=hex prefix; \0\1=corresponding octal
  92.  
  93.  \m=\n \divide\m by 64 \xdef\0{\the\m}%
  94.  
  95.  \multiply\m by-64 \advance\m by\n \divide\m by 8 \xdef\1{\the\m}}
  96.  
  97. \def\testrow{\setbox0=\hbox{\penalty 1\def\\{\char"\h}%
  98.  
  99.  \\0\\1\\2\\3\\4\\5\\6\\7\\8\\9\\A\\B\\C\\D\\E\\F%
  100.  
  101.  \global\p=\lastpenalty}} % \p=1 if none of the characters exist
  102.  
  103. \def\oddline{\cr
  104.  
  105.   \noalign{\nointerlineskip}
  106.  
  107.   \multispan{19}\hrulefill&
  108.  
  109.   \setbox0=\hbox{\lower 2.3pt\hbox{\hex{\h x}}}\smash{\box0}\cr
  110.  
  111.   \noalign{\nointerlineskip}}
  112.  
  113. \newif\ifskipping
  114.  
  115. \def\evenline{\loop\skippingfalse
  116.  
  117.  \ifnum\n<256 \m=\n \divide\m 16 \chardef\next=\m
  118.  
  119.  \expandafter\setdigs\meaning\next \testrow
  120.  
  121.  \ifnum\p=1 \skippingtrue \fi\fi
  122.  
  123.  \ifskipping \global\advance\n 16 \repeat
  124.  
  125.  \ifnum\n=256 \let\next=\endchart\else\let\next=\morechart\fi
  126.  
  127.  \next}
  128.  
  129. \def\morechart{\cr\noalign{\hrule\penalty5000}
  130.  
  131.  \chartline \oddline \m=\1 \advance\m 1 \xdef\1{\the\m}
  132.  
  133.  \chartline \evenline}
  134.  
  135. \def\chartline{&\oct{\0\1x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&}
  136.  
  137. \def\chartstrut{\lower4.5pt\vbox to14pt{}}
  138.  
  139. \def\table{$$\global\n=0
  140.  
  141.   \halign to\hsize\bgroup
  142.  
  143.     \chartstrut##\tabskip0pt plus10pt&
  144.  
  145.     &\hfil##\hfil&\vrule##\cr
  146.  
  147.     \lower6.5pt\null
  148.  
  149.     &&&\oct0&&\oct1&&\oct2&&\oct3&&\oct4&&\oct5&&\oct6&&\oct7&\evenline}
  150.  
  151. \def\endchart{\cr\noalign{\hrule}
  152.  
  153.   \raise11.5pt\null&&&\hex 8&&\hex 9&&\hex A&&\hex B&
  154.  
  155.   &\hex C&&\hex D&&\hex E&&\hex F&\cr\egroup$$\par}
  156.  
  157. \def\:{\setbox0=\hbox{\char\n}%
  158.  
  159.   \ifdim\ht0>7.5pt\reposition
  160.  
  161.   \else\ifdim\dp0>2.5pt\reposition\fi\fi
  162.  
  163.   \box0\global\advance\n 1 }
  164.  
  165. \def\reposition{\setbox0=\vbox{\kern2pt\box0}\dim=\dp0
  166.  
  167.   \advance\dim 2pt \dp0=\dim}
  168.  
  169. \def\centerlargechars{
  170.  
  171.   \def\reposition{\setbox0=\hbox{$\vcenter{\kern2pt\box0\kern2pt}$}}}
  172.  
  173. %
  174.  
  175. \newpage
  176.  
  177. \ifx\selectfont\undefined
  178.  
  179.   \font\sevenrm=cmr7
  180.  
  181.  \else
  182.  
  183.   \def\sevenrm{\fontfamily{cmr}\fontshape{n}\fontseries{m}\fontsize{7}{7pt}\selectfont}
  184.  
  185. \fi
  186.  
  187. \pagestyle{empty}
  188.  
  189. \init{umranda at 20.74pt}
  190.  
  191. \table
  192.  
  193. \newpage
  194.  
  195. \init{umrandb at 20.74pt}
  196.  
  197. \table
  198.  
  199. \endinput
  200.  
  201.